<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>TodoList</title>
    <script src="./vue.js"></script>
</head>
<body>
<!-- div 里面是父组件对应的模板，会显示list里面的数据-->
    <div id="root">
        <div>
            <input v-model="inputValue"/>
            <button @click="handleSubmit">提交</button>
        </div>

        <ul>
            <!--父组件创建子组件的时候，订阅delete，监听handleDelete-->
            <todo-item
            v-for="(item,index) of list"
            :key="index"
            :content="item"
            :index="index"
            @delete="handleDelete"
            >
            </todo-item>
        </ul>
    </div>

    <script>
        //注册vue组件todo-item,此为全局组件，可以直接使用
        Vue.component('todo-item',{
            //props 接收从外面传递进来的content属性
            props: ['content','index'],
            //每一个组件就是一个实例,也可以定义方法
            template: '<li @click="handleClick">{{content}}</li>',
            methods:{
                handleClick:function () {
                    //子组件发布事件，向外触发事件
                    this.$emit('delete',this.index)
                }
            }
        })

        //局部组件,如果想在全局使用，需要在vue实例里面注册
        // var TodoItem = {
        //     tempalte: '<li>item</li>'
        // }


        new Vue({
            el:"#root",
            //局部组件注册
            // components:{
            //     'todo-item':TodoItem
            // },
            data:{
                inputValue:'',
                list:[]
            },
            methods:{
                handleSubmit:function () {
                    this.list.push(this.inputValue)
                    this.inputValue = ''
                },
                handleDelete: function () {
                    this.list.splice(index,1)
                }
            }
        })
    </script>
</body>
</html>